 
  

 






<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"> 
<html>

<!-- Mirrored from www.javapractices.com/topic/TopicAction.do;jsessionid=4FCCB481C702D708A7360133D128E359?Id=178 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 12 Jun 2011 17:27:04 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8"><!-- /Added by HTTrack -->
<head>
 <title>
  Java Practices -> Prevent self-linking
 </title>
 <link rel="stylesheet" type="text/css" href="../stylesheet8.css" media="all">
 
 <link rel="shortcut icon" href='../images/favicon.ico' type="image/vnd.microsoft.icon">
 <meta name="description" content="Concise presentations of java programming practices, tasks, and conventions, amply illustrated with syntax highlighted code examples.">
 
 <meta name='keywords' content='suppressLink,JSP,servlet,java,java programming,java practices,java idiom,java style,java design patterns,java coding conventions,'>
 
 
</head>
 
<body>


<div class='menu-bar'>
 
  <a href='../home/HomeAction.html' title='Table of Contents'>Home</a> |
  <a href='../vote/VoteSummaryAction-2.html' title='View Poll Results'>Poll</a> |
   
  <A href='../feedback/FeedbackAction451f-2.html?Operation=Show' title='Send Your Feedback'>Wiki</a> |
  <b><a href='../source/SourceAction-2.html' title='Grab Source Code'>Source Code</a></b><IMG class='no-margin' SRC="../images/goldstar.gif" ALT=""> |

  <a href='http://www.web4j.com/Java_Web_Application_Framework_Overview.jsp?From=1' title='Free Download - Java Web Application Framework'><b>WEB4J</b></a> |
  
  <a href='http://www.date4j.net/' title='Replacement for java.util.Date'><b>DATE4J</b></a> |

   <a href='../references/ReferencesAction-2.html' title='References'>Links</a>
   
  <form action='http://www.javapractices.com/search/SearchAction.do' method='get' class='search-form'>
   <input type='text' name='SearchTerms' value="" size=12 maxlength=50 class='search'>
   <input type='submit' value="Search">
  </form>
 
</div>

<P>



  

 






<p class="display-messages">

 

 

</p>


<div class="main-layout">
 
   

 




<div class='page-title'>Prevent self-linking</div>

<div class='main-body'>
 
<br>It's often the case that a web page links to itself. This can be frustrating
for the user, especially if the page takes a long time to load. (This site
is guilty of self-linking, but the pages usually load quite quickly.) 

<P>Instead of self-linking, a page can suppress links to itself, and at the same time highlight the 
link text in some way, to clearly indicate the current page. The user is able to painlessly answer the 
common question "Where am I on this site?", at the same time as they are <em>prevented</em> from following 
a link that is usually useless. Such a style clearly has more compassion for the user's experience.

<P>There are two ways to avoid self-linking in a set of navigation links : 
<ul>
<li>copy and paste the set of navigation links across all pages, and manually alter 
each possible occurrence of self-linking.
<li>define the set of navigation links in one place, and create some means of dynamically suppressing 
self-linking when generating each page. This is the preferred style, since it defines the menu in a single place.
</ul>

<p>For the dynamic style, there is no standard way to define how such links are suppressed. 
An implementation might rely on a naming convention, for example, to identify
self-linking items that should be altered in some manner.

<h4>Example</h4>

<P>This example uses WEB4J's
<a href='http://www.web4j.com/web4j/javadoc/hirondelle/web4j/ui/tag/HighlightCurrentPage.html'><tt>HighlightCurrentPage</tt></a> 
custom tag to dynamically avoid self-linking.

<P>The following JSP snippet appears in a template, and displays a small navigation
bar. At runtime, one link in the navigation bar is suppressed, and shows
only plain text instead of the full link. In addition, it highlights 
the text (using a CSS class) to render it more obvious as the current page. This is implemented
with <tt>&lt;w:highlightCurrentPage&gt;</tt>. The tag uses one of two policies to identify links that are to be altered : 
<ul>
<li>matching the current URI to the end of the link's <tt>HREF</tt> target (this the default style)
<li>matching the textual body of the link to a substring of the <tt>TTitle</tt> request parameter
used by the WEB4J templating mechanism
</ul>

<PRE>
&lt;div class="menu-bar"&gt;
 &lt;w:highlightCurrentPage styleClass='highlight'&gt;
  &lt;c:url value="/main/home/HomePageAction.do" var="homeURL"/&gt; 
  &lt;A href='${homeURL}'&gt;Home&lt;/a&gt;
  &lt;c:url value="/main/rsvp/RsvpShow.do" var="showRsvpURL"/&gt; 
  &lt;A href='${showRsvpURL}'&gt;Rsvp&lt;/a&gt;
  &lt;c:url value="/main/visit/VisitAction.do?Operation=List" var="visitEditURL"/&gt; 
  &lt;A HREF='${visitEditURL}'&gt;Visits&lt;/A&gt;
  &lt;c:url value="/main/rating/RatingAction.do?Operation=List" var="ratingEditURL"/&gt; 
  &lt;A HREF='${ratingEditURL}'&gt;Ratings&lt;/A&gt;
  &lt;c:url value="/all/logoff/LogoffAction.do" var="logoffURL"/&gt; 
  &lt;A href='${logoffURL}'&gt;Log Off&lt;/a&gt;
 &lt;/w:highlightCurrentPage&gt;
&lt;/div&gt;
</PRE>

<br>
<br>

</div>




<div class='topic-section'>See Also :</div>
<div class='main-body'>
 
  
  <a href='TopicActiond8aa-2.html?Id=94'>Web usability guidelines</a> <br>
 
  
  <a href='TopicAction5f31-2.html?Id=188'>A Web App Framework - WEB4J</a> <br>
 
</div>


<div class='topic-section'>Would you use this technique?</div>
<div class='main-body'>
  
  <form action="http://www.javapractices.com/vote/AddVoteAction.do" method='post'>
    Yes<input type='radio' name='Choice' value='Y' >
    &nbsp;&nbsp;No<input type='radio' name='Choice' value='N'>
    &nbsp;&nbsp;Undecided<input type='radio' name='Choice' value="?" >
    &nbsp;&nbsp;<input type=submit value="Vote" >
    <input type='hidden' name='Operation' value='Apply'>
    <input type='hidden' name='TopicId' value='178'>
  </form>
</div>

<div style='height:10.0em;'></div>

 
 
</div>

  

 





<div align='center' class='legalese'>  
&copy; 2011 Hirondelle Systems |
<a href='../source/SourceAction-2.html'><b>Source Code</b></a><IMG class='no-margin' SRC="../images/goldstar.gif" ALT=""> |
<a href="mailto:webmaster@javapractices.com">Contact</a> |
<a href="http://creativecommons.org/licenses/by-nc-sa/1.0/">License</a> |
<a href='../apps/cjp.rss'>RSS</a>
<!-- ukey="2AC36CD2" -->
<!-- ckey="16DF3D87" -->
<br>

 Individual code snippets can be used under this <a href='../LICENSE.txt'>BSD license</a> - Last updated on June 6, 2010.<br>
 Over 150,000 unique IPs last month - <span title='Java Practices 2.6.5, Mon May 16 00:00:00 EDT 2011'>Built with</span> <a href='http://www.web4j.com/'>WEB4J</a>.<br>
 - In Memoriam : Bill Dirani -
</div>

<script src="../../www.google-analytics.com/urchin.js" type="text/javascript">
</script>
<script type="text/javascript">
_uacct = "UA-2633428-1";
urchinTracker();
</script>



</body>

<!-- Mirrored from www.javapractices.com/topic/TopicAction.do;jsessionid=4FCCB481C702D708A7360133D128E359?Id=178 by HTTrack Website Copier/3.x [XR&CO'2010], Sun, 12 Jun 2011 17:27:05 GMT -->
<!-- Added by HTTrack --><meta http-equiv="content-type" content="text/html;charset=UTF-8"><!-- /Added by HTTrack -->
</html>
